package com.kins.executer.factorys;

import com.kins.executer.enums.AiModelTypeEnum;
import com.kins.executer.handlers.common.business.RagFlowAskHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * @Description:
 * @Author: 申科
 * @Date:2025/11/12 15:24
 */

public class AiModelFactory {
    private static Map<String, AiModelExecuterHandler> aiModelHandler = new HashMap<>();
    static {
        aiModelHandler.put(AiModelTypeEnum.DEEPSEEK_CHAT.getAiModelType(), new DeepSeekHandler());
        aiModelHandler.put(AiModelTypeEnum.BOT.getAiModelType(), new BOTHandler());
        aiModelHandler.put(AiModelTypeEnum.NATURALLANGUAGE.getAiModelType(), new NaturallanguageHandler());
        aiModelHandler.put(AiModelTypeEnum.RUNWORKFLOW.getAiModelType(), new RunWorkflowHandler());
        aiModelHandler.put(AiModelTypeEnum.RAG_FLOW_ASK.getAiModelType(), new RagFlowAskHandler());

    }

    public static AiModelExecuterHandler getAiModelHandler(String interfaceType) {
        return aiModelHandler.get(interfaceType);
    }

    public static Map<String, AiModelExecuterHandler> getAllAiModelHandler() {
        return aiModelHandler;
    }

    private static Map<String, AiModelExecuterHandler> addRegister(){return null;}

    public static AiModelTypeEnum[] getAiModelTypes(){
        AiModelTypeEnum[] aiModelTypeEnums = new AiModelTypeEnum[]{
                        AiModelTypeEnum.DEEPSEEK_CHAT,
                        AiModelTypeEnum.BOT,
                        AiModelTypeEnum.NATURALLANGUAGE,
                        AiModelTypeEnum.RUNWORKFLOW,
                        AiModelTypeEnum.RAG_FLOW_ASK,
                };
                return aiModelTypeEnums;
        }


}
